/*
 * Copyright (c) 2012 RTCLab
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice, this list of
 *    conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
 *    of conditions and the following disclaimer in the documentation and/or other materials
 *    provided with the distribution.
 *
 */

package com.rtckit {

import flash.media.*;
import flash.net.URLRequest;
import flash.events.IOErrorEvent;
	
public class RingSound {
	
	private var fileName:String;
	private var sound:Sound;
	private var channel:SoundChannel = null;

	private var loops:int;

	function RingSound(fileName:String, loops:int = 1000) {
		this.loops = loops;
		
		sound = new Sound();
		sound.addEventListener(IOErrorEvent.IO_ERROR, this.sndIOError);
		sound.load(new URLRequest(fileName));
		this.fileName = fileName;
	}
	
	public function play():void {
		if (!channel && sound)
			channel = sound.play(0, loops);
	}
	
	public function stop():void {
		if (channel) {
			channel.stop();
			channel = null;
		}
	}
	
	private function sndIOError(event:IOErrorEvent):void {
		sound = null;
		Logger.error("Cannot load " + fileName);
	}
	
}
	
	
}
